package com.tao.china.common.queue;

import java.util.List;


/**
 * 消息队列
 */
public interface Queue<E> {
    
    /**
     * 将指定的元素插入此队列
     * @param e
     * @return
     */
    public boolean put(E e);
    
    /**
     * 获取并移除此队列的头，如果此队列为空，则返回 null。
     * @return
     */
    public E poll() ;
    
    /**
     * 返回此队列中的元素数
     * @return
     */
    public int size();
    
    /**
     * 获取队列头的前n个元素
     * @param n
     * @return
     */
    public List<E> getHeadEntrusts( int n );
    
    /**
     * 移除元素
     * @param e
     * @return
     */
    public boolean remove ( E e );
    
    /**
     * 得到队列全部元素
     * @return
     */
    public List<E> getAllEntrusts();

}
